namespace NPD_FUNC_CALL_MIGHT {
void reassign(int* argument, int* p) {
	if (goodEnough(argument)) return;
	*argument = *p;
}

int* mymalloc() {
	int* res = malloc(sizeof(int));
	if (!res) return 0;
	*res = 0;
	return res;
}

void npd_func_call_might(int* argument) {
	int* p = mymalloc();
	if (someCondition()) {
		p = f();
	}
	reassign(argument, p);
}

void reassign(int* argument, int* p) {
	if (goodEnough(argument)) return;
	*argument = *p;
}

int* mymalloc() {
	int* res = malloc(sizeof(int));
	if (!res) return 0;
	*res = 0;
	return res;
}

void npd_func_call_might(int* argument) {
	int* p = mymalloc();
	if (someCondition()) {
		p = f();
	}
	if (p != 0) reassign(argument, p);
}
}